lockedVar is package{
  type cell of %t is cell(%t);
  
  getLocked(C) is valof{
    sync(C){
      valis deRef(C);
    }
  }
  
  getLockedV2(C) is valof{
    XX is valof{
      sync(C){
        valis C
      }
    };
    valis deRef(XX);
  }
  
  deRef(cell(X)) is X;
  
  main() do {
    C is cell(34);
    
    assert getLocked(C)=34;
    
    assert getLockedV2(C)=34;
  }
}